Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / rnode / rnodeIntegrityKey.js

Displaying Raw • Download


meshchatx/src/frontend/js/rnode/rnodeIntegrityKey.js 32e97c105419d3bcede5c1311df3ffb63b8305a4 (32e97c10) Text, 967 B

T8b949e// SPDX-License-Identifier: 0BSD

T8b949e/**
* Resolve integrity.json key for an RNode flasher script URL.
* Tries longest suffix first so both flat files (zip.min.js) and nested
* packages (crypto-js@x/core.js, web-serial-polyfill@x/dist/serial.js) match.
*
* @param {string} src
* @param {Record<string, string>|null|undefined} integrity
* @returns {string}
*/
Tff7b72export Tff7b72function Te6edf3rnodeIntegrityKeyForSrcTb4b4b4(Te6edf3srcTb4b4b4, Te6edf3integrityTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3parts Tff7b72= Tffa657StringTb4b4b4(Te6edf3src Tff7b72|| Ta5d6ff""Tb4b4b4)
Tb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)
Tb4b4b4.Te6edf3filterTb4b4b4(Tffa657BooleanTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3partsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3candidates Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3n Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(T79c0ff3Tb4b4b4, Te6edf3partsTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4; Te6edf3n Tff7b72>= T79c0ff1Tb4b4b4; Te6edf3n Tff7b72-= T79c0ff1Tb4b4b4) Tb4b4b4{
Te6edf3candidatesTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3partsTb4b4b4.Te6edf3sliceTb4b4b4(Tff7b72-Te6edf3nTb4b4b4)Tb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3integrity Tff7b72&& Tff7b72typeof Te6edf3integrity Tff7b72=== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3key Tff7b72of Te6edf3candidatesTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3integrityTb4b4b4[Te6edf3keyTb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3keyTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3candidatesTb4b4b4[Te6edf3candidatesTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4] Tff7b72|| Te6edf3partsTb4b4b4[Te6edf3partsTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4]Tb4b4b4;
Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────